#pragma once
#include "CycleQueue.h"
#include <string>
#include <vector>
#include <opencv2/opencv.hpp>

class AreaDetectOutput {
public:
	AreaDetectOutput() {};
	~AreaDetectOutput() {};
public:
	bool result;
	unsigned int frameNo;
};

class CAreaDetectOutputQueueManager
{
private:
	unsigned int m_size;
public:
	CAreaDetectOutputQueueManager(unsigned size)
		:m_size(size) {
		images = new CCycleQueue<AreaDetectOutput>(size);
	};
	~CAreaDetectOutputQueueManager() {
		delete images;
	};
	void push(AreaDetectOutput ele)
	{
		images->push(ele);
	}

	AreaDetectOutput getAt(unsigned int i)
	{
		return images->getAt(i);
	}

	int getCurrentPos() {
		return images->getCurrentPos();
	}

	int getLast(AreaDetectOutput &frame) {
		return images->getLast(frame);
	}


	int getSize() {
		return m_size;
	}
private:
	CCycleQueue<AreaDetectOutput> *images;
};
